package org.merak.core.test.model;

import org.merak.core.model.Identifiable;

/**
 * Copyright � 2010-2012 Merak Computing. All rights reserved.<br><br>
 *
 * Methods and declarations for KingdomOfLife.
 *
 * @author fmarinho.
 * @version 1.00.00 - Jul 22, 2012 - fmarinho - initial version.
 *
 * @since MerakCore 1.00.00
 */
public enum KingdomOfLife implements Identifiable<Integer> {

	//~ Enumerated values //////////////////////////////////////////////////////////////////////////
	//**********************************************************************************************
	UNKNOWN(-1), MONERA(0), PROTISTA(1), FUNGI(2), PLANTAE(3), ANIMALIA(4);

	//~ Attributes /////////////////////////////////////////////////////////////////////////////////
	//**********************************************************************************************
	private final Integer id;

	//~ Constructors ///////////////////////////////////////////////////////////////////////////////
	//**********************************************************************************************
	private KingdomOfLife(int id) {
		this.id = id;
	}

	//~ Methods ////////////////////////////////////////////////////////////////////////////////////
	//**********************************************************************************************
	@Override
	public Integer getId() {
		return this.id;
	}
	//**********************************************************************************************
	@Override
	public boolean hasId(Integer id) {
		return this.id.equals(id);
	}
	//**********************************************************************************************
	@Override
	public boolean anonymous() {
		return false;
	}
	//**********************************************************************************************
	@Override
	public boolean selfsame(Identifiable<Integer> obj) {
		return obj == this;
	}
    //**********************************************************************************************
	public static KingdomOfLife getValue(int id) {

		for (KingdomOfLife e : values()) {
			if ( e.hasId(id) ) return e;
		}
		return UNKNOWN;

	}
	//**********************************************************************************************

}


